home *** CD-ROM | disk | FTP | other *** search
/ Celestin Apprentice 5 / Apprentice-Release5.iso / Utilities / Communications / Pancake Dev Package 1.0 / Test Extern / Common.p next >
Encoding:
Text File  |  1995-09-06  |  17.3 KB  |  598 lines  |  [TEXT/PJMM]

  1. unit PancakeCommon;
  2. interface
  3.  
  4.     const
  5.         Keypad = 'ABCDEFGHIJKLMNOPRSTUVWXY';
  6.         PossTypeable = 'ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz1234567890!@#$%^&*()-_+={}[]:;"<,>.?/|\~` ''éå∫ç∂´ƒ©˙^Δ˚¬µøπœ®ß†¨√∑≈¥ΩÅıÇΉÏÌÓÈÔÒ˜ˆØ∏ŒÂÍÊË◊„ÙÁÛ¡™£¢∞§¶•ªº–≠⁄€‹›fifl‡°·‚—±”’“‘ÚÆ…æ≤≥¯˘÷¿»«Ÿ';
  7.         PossPrintable = 'ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz1234567890!@#$%^&*()-_+={}[]:;"<,>.?/|\~` ''';
  8.         PossUsername = 'ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz1234567890';
  9.         PossPhone = '1234567890-';
  10.         MacJmp = $120;          {[PTR2LONG]}
  11.         TabEqualsSpace = false;
  12.         InputBufSize = 512;
  13.         ModGeneva = 128;
  14.         IBMCharset = 129;
  15.         BoldIBMCharset = 130;
  16.         Creator = 'Cake';
  17.         UserType = 'User';
  18.         PrefType = 'Pref';
  19.         DataType = 'DATA';
  20.         ExternType = 'XPan';
  21.         TextType = 'TEXT';
  22.         Version = '1.0';
  23.         Null = chr(0);
  24.         EscCode = chr(1);
  25.         ControlC = chr(3);
  26.         BackSpace = chr(8);
  27.         Tab = chr(9);
  28.         Linefeed = chr(10);
  29.         Return = chr(13);
  30.         CntrlX = chr(24);
  31.         Escape = chr(27);
  32.         Destructive = chr(127);
  33.         tooManyNodesErr = -13542;
  34.         MaxNodes = 22; {Normally 22}
  35.         MaxPorts = 3; {Normally 3}
  36.         MaxMenus = 20;
  37.         EditTextStart = 1;        {Window Types}
  38.         EditTextEnd = 10;
  39.         UserEdit = 11;
  40.         GroupEdit = 12;
  41.         StringEdit = 13;
  42.         PortPrefs = 14;
  43.         SysPrefs = 15;
  44.         ScreenSaver = 16;
  45.         AboutBox = 17;
  46.         BoardStatus = 18;
  47.         PortStatus = 19;
  48.         Diagnostic = 20;
  49.         MenuEdit = 21;
  50.         NodeStart = 100;
  51.         NodeEnd = NodeStart + MaxNodes;
  52.         ScrollBackLines = 250;
  53.         MaxX = 80;
  54.         MaxY = 24;
  55.         IncX = 6;
  56.         IncY = 11;
  57.         MemBuffer = 61440;
  58.         InitExt = 1;
  59.         Idle = 2;
  60.         KeyPressed = 3;
  61.         DisposeExt = 4;
  62.         DisposeGlobal = 5;
  63.  
  64.     type
  65.         str16 = string[16];
  66.         str8 = string[8];
  67.         systemRec = record
  68.                 version, numUsers, numGroups, numCookies, numPorts, logMain, callsToday: integer;
  69.                 maxPageCalls, maxPageSegments, maxPageDigits, windowsOpen, validPaths: integer;
  70.                 lastCaller, NUP: str16;
  71.                 checkNUP, unusedUseMe, speakReason, excuseBefore, sysopAvail, pagingOn, encodeLetters: boolean;
  72.                 postLocally: boolean;
  73.                 portStatusRect, boardStatusRect: rect;
  74.                 pageAcs, netPostAcs: string[25];
  75.                 pagerPhone: string[41];
  76.                 uucpNode: str16;
  77.                 timezone: string[5];
  78.                 curDay, curMonth, lastCall: longint;
  79.                 organization, newsFrom, domainName: string[59];
  80.                 paths: array[1..8] of string[127];
  81.                 uucpPort, suckerPort, termPort: integer;
  82.                 spoolPath, slurpSpoolPath, mailPath: string[127];
  83.                 localPass: str16;
  84.                 localProtection, uucpMail: boolean;
  85.                 mailService: str16;
  86.                 receiveMailAcs, sendMailAcs: string[25];
  87.                 seqf: integer;
  88.                 mailFrom: string[59];
  89.                 saverEnabled: boolean;
  90.                 saverIdle: integer;
  91.                 checkPopMail, smtpServerEnabled, smtpMail: boolean;
  92.                 popServer, smtpRelay: str31;
  93.                 uucpKickUsers, strictPhone: boolean;
  94.                 uucpLaunchEvery: integer;
  95.                 uucpLaunchedLast: longint;
  96.                 phoneFormat: str31;
  97.                 uucp, uucpFile, parser, term, sucker: FSSpec;
  98.                 bbsName: str31;
  99.                 suckerKickUsers: boolean;
  100.                 suckerLaunchEvery: integer;
  101.                 suckerLaunchedLast: longint;
  102.                 telnetAcs, fingerOutAcs: string[25];
  103.                 pppPort: integer;
  104.                 pppEnable, pppOpen, pppClose, pppHard: boolean;
  105.                 chatSound, sosSound: str32;
  106.                 printAcs, chatAcs, sosAcs: string[25];
  107.                 numMenus: integer;
  108.                 redirectAcs: string[25];
  109.                 passwordsEcho, hotkeyMenuFirst: boolean;
  110.             end;
  111.         asyncWritePtr = ^asyncWriteRec;
  112.         asyncWriteRec = record
  113.                 pb: ParamBlockRec;
  114.                 nextPtr: asyncWritePtr;
  115.                 data: packed array[1..32000] of byte;
  116.             end;
  117.         carrierType = (NoDetection, Bob, CTS, DCDchip, DCDdriver);
  118.         portType = (Serial, TCP, AppleTalk, SysopLocal);
  119.         portSavRec = record
  120.                 nodeRect: rect;
  121.                 timeout, maxConns: integer;
  122.                 connAcs: string[25];
  123.                 callSound: str32;
  124.                 res: packed array[1..255] of byte;
  125.                 case typePort : portType of
  126.                     Serial: (
  127.                             typeCarrier: CarrierType;
  128.                             baud: longint;
  129.                             modemDriver, serialPort: integer;
  130.                             hwHand, pageable: boolean;
  131.                             res1: packed array[1..255] of byte;
  132.                     );
  133.                     TCP: (
  134.                             tcpPort: integer;
  135.                             enableFinger: boolean;
  136.                             res2: packed array[1..255] of byte;
  137.                     );
  138.                     AppleTalk: (
  139.                             adspName: str32;
  140.                             res3: packed array[1..255] of byte;
  141.                     );
  142.             end;
  143.         portGlobRec = record
  144.                 sessions, openPort, oldStatusLen: integer;
  145.                 lastInit: longint;
  146.                 connectionLost, inUse: boolean;
  147.                 status: string[80];
  148.                 case portType of
  149.                     Serial: (
  150.                             modemSection: (Hangup, InitSerial, PortIsBad, PortIsBusy, Offline, InitModem, GetOk, Awaiting, Answering);
  151.                             modemRedirecting: boolean;
  152.                             inRefnum, outRefnum: integer;
  153.                             inputBuffer: ptr;
  154.                             topWritePtr: asyncWritePtr;
  155.                     );
  156.                     TCP: (
  157.                             tcpSection: (InitTCP, GotError, AwaitingOpen, Connecting, CloseConn);
  158.                             fingerInSection: (OpenFingerIn, GotFingerErr, WaitingForFinger, NeedName, SendFingerInfo, CloseFingerIn);
  159.                             curTcpRefnum, fingerRefnum: integer;
  160.                             fingerName: string[80];
  161.                     );
  162.                     AppleTalk: (
  163.                             atlkSection: (InitAtlk, GotAtlkError, AwaitingAtlkOpen, AtlkConnecting, AtlkCloseConn);
  164.                             clConnRefnum, curConnRefnum: integer;
  165.                     );
  166.             end;
  167.         boardGlobRec = record
  168.                 done, screenSaverUp, inBackground, uucpLoaded, termLoaded, pageQueued, localLocked: boolean;
  169.                 windowsDirty, menusLocked, lpBeeped, kickingUUCPUsers, kickingSuckerUsers: boolean;
  170.                 suckerLoaded, editingPorts: boolean;
  171.                 lastResRefnum, strResRefnum, sndResRefnum, txtResRefnum, groupCheck, lpPos: integer;
  172.                 groupsStamp, lastIdleMess, gestaltOSAttrResult: longint;
  173.                 addedHotkey: str32;
  174.             end;
  175.         displayPtr = ^displayRec;
  176.         displayRec = record
  177.                 cx, cy, sx, sy, head, tail, linesSincePause, param, scrollMTop, scrollMBot: integer;
  178.                 nodeWind: WindowPtr;
  179.                 scroll: ControlHandle;
  180.                 lastClick: longint;
  181.                 pasteHand: handle;
  182.                 cursorRect, selRect: rect;
  183.                 params: array[1..5] of byte;
  184.                 reversed, blinkOn, inScrollBack, inEsc, questMark: boolean;
  185.                 afterEsc: (OpenBracket, OpenParanth, CloseParanth);
  186.                 screen: packed array[1..MaxY, 0..MaxX] of byte;
  187.                 scrollback: packed array[1..ScrollBackLines, 0..MaxX] of byte;
  188.             end;
  189.         joinRec = record
  190.                 groupHash, numRead: longint;
  191.             end;
  192.         joinHand = ^joinPtr;
  193.         joinPtr = ^joinArr;
  194.         joinArr = array[1..32768] of joinRec;
  195.  
  196.         userRecPtr = ^userRec;
  197.         userRec = record
  198.                 userName, password: str16;
  199.                 shell, localEdit, remoteEdit: str8;
  200.                 name, phone: string[32];
  201.                 timeOnToday, extraTime, firstLogin, previousLogin, upload, download: longint;
  202.                 minsPerDay, userNum: integer;
  203.                 accessLevel, priv, linesPerPage: byte;
  204.                 male: boolean;
  205.                 birthday: longint;
  206.                 comment: string;
  207.                 emulation: (tty, vt100, ansi, tek, rip);
  208.                 checkPop: boolean;
  209.                 selGroup: integer;
  210.                 res: packed array[1..37] of byte;
  211.             end;
  212.  
  213.         mailIndexRec = record
  214.                 loc, len: longint;
  215.                 deleted: boolean;
  216.                 priv: packed array[1..25] of byte;
  217.             end;
  218.         mailIndexHand = ^mailIndexPtr;
  219.         mailIndexPtr = ^mailIndexArr;
  220.         mailIndexArr = array[1..32768] of mailIndexRec;
  221.  
  222.         shellType = (Waffle, Hotkey, Other);
  223.         nodeActionType = (None, Prompting, Listing, Chatting, LineChatting, Transfering, Editor, Extern, Menu);
  224.         nodeSectionType = (Shell, Logon, NewUser, ListingUsers, Feedback, Mailing, ReadingMail, Chat, Select, Rn, Post, Join, Finger, Telnet, Page, ChangeShell, ChangeEdit, Edit, AreYouSure, Help, Redirect, OneLiner, MultiChat, Download);
  225.         nodeGlobPtr = ^nodeGlobRec;
  226.         nodeGlobRec = record
  227.                 display: displayRec;
  228.                 keyBuf, userKeyBuf: string;
  229.                 curTextHand: Handle;
  230.                 nodeAction: nodeActionType;
  231.                 yesDefault, critical, nodeClosing, abortListing, pauseEnabled, resolveTextPercents: boolean;
  232.                 noReturn, useUserkeyBuf, transInProgress: boolean;
  233.                 typeConn: portType;
  234.                 lenPrompt, numPrompt, curEditor, curExtern, curNum, lenChat, portNum, connRefnum: integer;
  235.                 timesCritical, transRefnum, editRefnum, externRefnum: integer;
  236.                 curTextPos, curTextSize, loginTime, lastKeypress, lastBlink, textStart: longint;
  237.                 cps, maxPrompt: longint;
  238.                 promptProc, quitHandlerProc: ProcPtr;
  239.                 thisUser: userRec;
  240.                 curPath, curPrompt, curAnswer, curCommand, curParams, shellPrompt, pauseAccepted, interNode: string;
  241.                 numParams, curMenu, shellMenu: integer;
  242.                 savedNodeAction: array[1..4] of nodeActionType;
  243.                 whichShell: ShellType;
  244.                 specialPrompt: (Normal, Command, Password, WordWrap);
  245.                 shellSection: (InitShell, BeforePrompt, MainPrompt, BeforeGo, GoSection);
  246.                 sysopPos, userPos: point;
  247.                 savedUseUserKeyBuf, inSlash: boolean;
  248.                 joinData: joinHand;
  249.                 mailIndex: mailIndexHand;
  250.                 curChat, curSysChat: string[80];
  251.                 savedVarient: ptr;
  252.                 subject: string[80];
  253.                 case nodeSection : NodeSectionType of
  254.                     Logon: (
  255.                             logonSection: (Welcome, NamePrompt, PassPrompt, CheckInfo, LogonFile, CheckBulletins, CheckMail, ToShell);
  256.                             lvRefnum, logonIndex: integer;
  257.                             lDirID: longint;
  258.                     );
  259.                     NewUser: (
  260.                             newUserSection: (NUPText, NUPPrompt, CheckNup, AccessCode, CheckCode, NewUserText, NewUserName, NewName, NewPhone, NewBirth, NewSex, NewPassword, VerifyPassword, SaveUserInfo);
  261.                             question: boolean;
  262.                     );
  263.                     ListingUsers: (
  264.                             curUser: integer;
  265.                             loadedUser: userRec;
  266.                     );
  267.                     Feedback: (
  268.                             feedbackSection: (FeedbackText, FeedbackPrompt, SendFeedback);
  269.                     );
  270.                     Mailing: (
  271.                             mailingSection: (ReplyMail, WhoTo, MailSubject, MailEdit, SaveMail);
  272.                             curMailing: str16;
  273.                             curDomainAddr: string[80];
  274.                     );
  275.                     ReadingMail: (
  276.                             rmSection: (InitRm, RmPrompt, RmProcess, ListRm, CloseRm);
  277.                             rmRefnum, numMail, curMail, rmTi: integer;
  278.                     );
  279.                     Chat: (
  280.                             chatSection: (ChatText, ChatYesNo, ReasonPrompt, Beep);
  281.                     );
  282.                     Select: (
  283.                             selectSection: (AskGroup, SelectAction);
  284.                     );
  285.                     Rn, Post: (
  286.                             rnSection: (InitRn, CheckGroup, AskRead, ProcessAnswer, ReadMessage, RnPrompt, RnAction, RnSecond, ListingTitles, InitSearch, Searching, Posting, CatchUp, RnWriting, RnBatchWrite, CloseRn);
  287.                             curGroup: integer;
  288.                             search: string[40];
  289.                             references: string;
  290.                             curMess, curPost, rnTli: longint;
  291.                             read, searchForward: boolean;
  292.                             case integer of
  293.                                 1: (
  294.                                         batchWriteSection: (BWCheck, BWFilenameP, BWInit, PerformBW);
  295.                                         bwFrom, bwTo: longint;
  296.                                 );
  297.                                 2: (
  298.                                         postingSection: (PostReply, PostSubject, PostEdit, SavePost);
  299.                                         postSection: (PostCommandline, GroupAction, InitPost, DoingPost, ClosePost);
  300.                                 );
  301.                     );
  302.                     Join: (
  303.                             joinSection: (JoinCommandline, InitJoin, ListGroups, ListingGroups, JoinReturn, JoinPrompt, JoinAction, CloseJoin);
  304.                             joinGroup, joinNum: integer;
  305.                             joining: boolean;  {Joining or unjoining?}
  306.                     );
  307.                     Finger: (
  308.                             FingerSection: (InitFinger, ConnFinger, ConnectingFinger, DoingFinger, CloseFinger);
  309.                             fingerConn: integer;
  310.                             fingerBuf: handle;
  311.                     );
  312.                     Telnet: (
  313.                             TelnetSection: (InitTelnet, ConnTelnet, ConnectingTelnet, DoingTelnet, CloseTelnet);
  314.                             teln: record
  315.                                     conn: integer;
  316.                                     buf, expectBuf: handle;
  317.                                     inOption: boolean;
  318.                                     port, curParam: integer;
  319.                                     status: longint;
  320.                                     option: string[2];
  321.                                 end;
  322.                     );
  323.                     Page: (
  324.                             pageSection: (PageText, PagePrompt, SendPage);
  325.                     );
  326.                     AreYouSure: (
  327.                             sureSection: (AskSure, CheckAndExec);
  328.                             sureType: (OffAYS, LoginAYS);
  329.                     );
  330.                     ChangeShell: (
  331.                             changeShellSection: (CSText, ChangeShellPrompt, SetShell);
  332.                     );
  333.                     ChangeEdit: (
  334.                             changeEditSection: (CEText, ChangeEditPrompt, SetEdit);
  335.                     );
  336.                     Edit: (
  337.                             editSection: (InitEdit, CreateFile, OpenFileEdit, EditFile);
  338.                             editFileRefnum: integer;
  339.                     );
  340.                     Help: (
  341.                             helpSection: (DispMenu, HelpPrompt, PromptAction);
  342.                             helpPath: string[80];
  343.                             helpLevel: integer;
  344.                     );
  345.                     Redirect: (
  346.                             redirectSection: (InitRedirect, DoingRedirect, CleanUpRedirect);
  347.                             redirectPort: integer;
  348.                             lastCntrlX: longint;
  349.                     );
  350.                     OneLiner: (
  351.                             oneLinerSection: (AskNode, CheckNode, AskOneLiner, SendOneLiner);
  352.                             oneLinerNode: integer;
  353.                     );
  354.                     MultiChat: (
  355.                             multiChatSection: (InitMulti, ListMultiUsers, MultiPrompt, DoMulti);
  356.                     );
  357.                     Download: (
  358.                             dlSection: (FilePrompt, DoFind, ProtoPrompt, DoDown);
  359.                     );
  360.             end;
  361.         userIndexRec = record
  362.                 name: str16;
  363.                 num: longint;
  364.             end;
  365.         userIndexHand = ^userIndexPtr;
  366.         userIndexPtr = ^userIndexArr;
  367.         userIndexArr = array[1..32768] of userIndexRec;
  368.  
  369.         typeGroupType = (Local, Usenet, Fidonet);
  370.         groupRec = record
  371.                 groupName: string[58];
  372.                 min, max, lastScan, dirID: longint;
  373.                 validBits, vRefnum, hash, keep: integer;
  374.                 readAcs, postAcs: string[25];
  375.                 typeGroup: typeGroupType;
  376.                 anon, new: boolean;
  377.             end;
  378.         groupHand = ^groupPtr;
  379.         groupPtr = ^groupArr;
  380.         groupArr = array[1..32768] of groupRec;
  381.  
  382.         sectionRec = record
  383.                 sectionName: string[58];
  384.                 lookAcs, dlAcs, ulAcs: string[25];
  385.                 free: boolean;
  386.                 dirID: longint;
  387.                 vRefnum, validityBits: integer;
  388.                 res: packed array[1..42] of byte;
  389.             end;
  390.         sectionHand = ^sectionPtr;
  391.         sectionPtr = ^sectionArr;
  392.         sectionArr = array[1..32768] of sectionRec;
  393.  
  394.         commandsRec = record
  395.                 hotkey: char;
  396.                 slash, enabled: boolean;
  397.                 mainMenu: str32;
  398.                 acs, description: string[25];
  399.             end;
  400.         commandsArr = array[1..32768] of commandsRec;
  401.         commandsHand = ^commandsPtr;
  402.         commandsPtr = ^commandsArr;
  403.  
  404.         menuRec = record
  405.                 menuName: str32;
  406.                 menuPrompt: string;
  407.                 numCommands: integer;
  408.                 commands: commandsHand;
  409.             end;
  410.  
  411.         cookieIndexHand = ^cookieIndexPtr;
  412.         cookieIndexPtr = ^cookieIndexArr;
  413.         cookieIndexArr = array[1..32768] of longint;
  414.  
  415.         modemStrType = (InitStr, ChangeSpeed, HWOn, HWOff, DtrOn, DtrOff, Answer, HangupStr, Quit);
  416.  
  417.         MailQueueHand = ^MailQueuePtr;
  418.         MailQueuePtr = ^MailQueueArr;
  419.         MailTypeType = (STMPClient, STMPServer, POP2);
  420.         MailQueueRec = record
  421.                 connRefnum: integer;
  422.                 stage: (Opening, Commanding, Reading, Done);
  423.                 received: string;
  424.                 case mailType : MailTypeType of
  425.                     STMPClient: (
  426.                             stmpCommand: (Helo, MailCmd, Rcpt, Data, Close);
  427.                             mailHand: handle;
  428.                     );
  429.                     STMPServer: (
  430.                     );
  431.                     POP2: (
  432.                             popCommand: (HeloCmd, ReadCmd, Retr, CloseCmd);
  433.                             userName, password: str16;
  434.                             count, bytesReceived: longint;
  435.                             receiveHand: handle;
  436.                     );
  437.             end;
  438.         MailQueueArr = array[1..100] of MailQueueRec;
  439.  
  440. {Insert All Declerations Here:}
  441.  
  442.         ptr2hand = ^Handle;
  443.         ptr2str = ^str255;
  444.         ptr2int = ^integer;
  445.         ptr2userRec = ^userRec;
  446.  
  447.         privatesHand = ^privatesPtr;
  448.         privatesPtr = ^privatesRec;
  449.         privatesRec = record
  450.                 curAnswer: ptr2str;
  451.                 curCommand: ptr2str;
  452.                 curParams: ptr2str;
  453.                 numParams: ptr2int;
  454.                 thisUser: ptr2userRec;
  455.                 stage: (Open, Quest, Exit);
  456.             end;
  457.  
  458. {End of User Declerations}
  459.  
  460.         editParamsPtr = ^editParamsRec;
  461.         editParamsRec = record
  462.                 message: byte;
  463.                 nodeGlobs: nodeGlobPtr;
  464.                 privates, globals: privatesHand;
  465.                 externRefnum, appRefnum: integer;
  466.                 reserved: packed array[1..96] of char;
  467.                 procs: array[1..25] of ProcPtr;
  468.             end;
  469.  
  470.     const
  471.         Bounces = 1;  {Report where consts}
  472.         Callers = 2;
  473.         Schedular = 3;
  474.         Errors = 4;
  475.         Events = 5;
  476.         LogFail = 6;
  477.         Mail = 7;
  478.         Net = 8;
  479.         Transfers = 9;
  480.  
  481.         vCurTextHand = 1;
  482.         vKeyBuf = 2;
  483.         vNodeAction = 3;
  484.         vCurAnswer = 4;
  485.         vCurCommand = 5;
  486.         vCurParams = 6;
  487.         vNumParams = 7;
  488.         vThisUser = 8;
  489.         vNoReturn = 9;
  490.         vCurPath = 10;
  491.         vCx = 11;
  492.         vCy = 12;
  493.  
  494.     type
  495.         ptr2bool = ^boolean;
  496.  
  497.     procedure WriteProc (str: string; theRout: ProcPtr);
  498.     inline
  499.         $205f, $4e90;
  500.  
  501.     procedure WritelnProc (str: string; theRout: ProcPtr);
  502.     inline
  503.         $205f, $4e90;
  504.  
  505.     procedure WriteHandProc (hand: Handle; theRout: ProcPtr);
  506.     inline
  507.         $205f, $4e90;
  508.  
  509.     procedure ListResFileProc (name: string; theRout: ProcPtr);
  510.     inline
  511.         $205f, $4e90;
  512.  
  513.     procedure SetNodeActionProc (action: NodeActionType; theRout: ProcPtr);
  514.     inline
  515.         $205f, $4e90;
  516.  
  517.     procedure RestoreNodeActionProc (theRout: ProcPtr);
  518.     inline
  519.         $205f, $4e90;
  520.  
  521.     procedure JumpToProc (x, y: integer; theRout: ProcPtr);
  522.     inline
  523.         $205f, $4e90;
  524.  
  525.     procedure OutProc (str: string; theRout: ProcPtr);
  526.     inline
  527.         $205f, $4e90;
  528.  
  529.     procedure OutPtrProc (buf: ptr; size: longint; theRout: ProcPtr);
  530.     inline
  531.         $205f, $4e90;
  532.  
  533.     procedure ReportProc (where: integer; str: string; theRout: ProcPtr);
  534.     inline
  535.         $205f, $4e90;
  536.  
  537.     function GetVarPtrProc (which: integer; theRout: ProcPtr): ptr;
  538.     inline
  539.         $205f, $4e90;
  540.  
  541.     procedure ListHandProc (hand: handle; theRout: ProcPtr);
  542.     inline
  543.         $205f, $4e90;
  544.  
  545.     function ListTextFileProc (pathname, filename: string; theRout: ProcPtr): OSErr;
  546.     inline
  547.         $205f, $4e90;
  548.  
  549.     procedure LettersPromptProc (prompt, possible: string; len: byte; theRout: ProcPtr);
  550.     inline
  551.         $205f, $4e90;
  552.  
  553.     procedure PasswordPromptProc (prompt, possible: string; len: byte; theRout: ProcPtr);
  554.     inline
  555.         $205f, $4e90;
  556.  
  557.     procedure NumbersPromptProc (prompt, possible: string; max: longint; theRout: ProcPtr);
  558.     inline
  559.         $205f, $4e90;
  560.  
  561.     procedure AutoPromptProc (prompt, possible: string; theRout: ProcPtr);
  562.     inline
  563.         $205f, $4e90;
  564.  
  565.     procedure YesNoPromptProc (prompt: string; yesDefault: boolean; theRout: ProcPtr);
  566.     inline
  567.         $205f, $4e90;
  568.  
  569.     procedure DatePromptProc (prompt: string; theRout: ProcPtr);
  570.     inline
  571.         $205f, $4e90;
  572.  
  573.     procedure PhonePromptProc (prompt: string; theRout: ProcPtr);
  574.     inline
  575.         $205f, $4e90;
  576.  
  577.     procedure ClrScrProc (theRout: ProcPtr);
  578.     inline
  579.         $205f, $4e90;
  580.  
  581.     function ReplacePercentsProc (str: string; replaceProc: procPtr; user: userRecPtr; theRout: ProcPtr): string;
  582.     inline
  583.         $205f, $4e90;
  584.  
  585.     function HasAccessProc (acs: string; theRout: ProcPtr): boolean;
  586.     inline
  587.         $205f, $4e90;
  588.  
  589.     procedure SendFileProc (protocol: char; path, filename: string; theRout: ProcPtr);
  590.     inline
  591.         $205f, $4e90;
  592.  
  593.     procedure ReceiveFileProc (protocol: char; path, filename: string; theRout: ProcPtr);
  594.     inline
  595.         $205f, $4e90;
  596.  
  597. implementation
  598. end.